package Dominio;

import java.util.ArrayList;

import Persistencia.PersistenciaException;

public class Dom_Fachada implements InterfazFachadaDom {

	/*
	 * Codigo de gestion de usarios.
	 * ************************************************************
	 */
	@Override
	public void createCliente(PerfilData cliente) throws DominioException {
		new Gestor_Usuario().createCliente(cliente);
	}

	@Override
	public void createTrabajador(PerfilData pd) throws DominioException {
		new Gestor_Usuario().createTrabajador(pd);
	}

	@Override
	public PerfilData loginUser(String nick, String pass)
			throws DominioException {
		return new Gestor_Usuario().loginUser(nick, pass);
	}

	@Override
	public void updateUser(PerfilData user) throws DominioException {
		new Gestor_Usuario().updateUser(user);
	}

	@Override
	public void deleteUser(PerfilData user) throws DominioException {
		new Gestor_Usuario().deleteUser(user);
	}

	/*********************************************************************************************/

	@Override
	public void apostar(ApuestaUsuarioData apuesta) throws DominioException {
		new Gestor_Apuestas().apostar(apuesta);
	}

	@Override
	public void createApuesta(ApuestaData apuesta) throws DominioException {
		new Gestor_Apuestas().createApuesta(apuesta);
	}

	@Override
	public void updateApuesta(ApuestaData apuesta) throws DominioException {
		new Gestor_Apuestas().updateApuesta(apuesta);
	}

	public ArrayList<ApuestaUsuarioData> apuestasUsuario(PerfilData user,
			int filtro) throws DominioException {
		return new Gestor_Apuestas().apuestasUsuario(user, filtro);
	}

	@Override
	public void deleteApuesta(ApuestaData apuesta) throws DominioException {
		new Gestor_Apuestas().deleteApuesta(apuesta);
	}

	@Override
	public void addSaldo(PerfilData cliente, float cantidad)
			throws DominioException {
		new Robankia().addSaldo(cliente, cantidad);
	}

	@Override
	public void pagoApuestas(ApuestaData ap, char r) throws DominioException {
		new Robankia().pagoApuestas(ap, r);
	}

	@Override
	public void exchangeSaldo(PerfilData cliente, float cantidad)
			throws DominioException {
		new Robankia().exchangeSaldo(cliente, cantidad);
	}

	@Override
	// id = -1 --> Recupera todas las apuestas del sistema
	// id = 0 --> Recupera todas las apuestas activas.
	public ArrayList<ApuestaData> readApuesta(int id) throws DominioException {
		return new Gestor_Apuestas().getApuesta(id);
	}

}
